// *****************************************************************************
// * Config_SIOC ver 4.3   -     By Manuel Velez    -    www.opencockpits.com
// *****************************************************************************
// * FileName : Aerosystem_V4.txt
// * Date : 7/05/2016



Var 0000, Value 0
{
  &D_COURSE1 = 0    
  &D_COURSE2 = 0    
  &D_HDG = 0    
  &D_IAS = 140    
  &T_IAS = 140    
  &AP_IAS = 1    
  &AP_IAS = DELAY 0 ,10
}

Var 0001, name Command, Link FSUIPC_INOUT, Offset $7370, Length 1     // commande BT du MCP AS

Var 0002, name Valeur_OPTION, Link FSUIPC_INOUT, Offset $7371, Length 2     // Pour ecrire une valeur a une command

Var 0003, name Valeur_ALT_MCP, Link FSUIPC_INOUT, Offset $7374, Length 2     // Lis la valeur du MCP AS

Var 0004, name LEDSTATUT, Link FSUIPC_INOUT, Offset $7376, Length 2     // Lis les led du MCP AS
{
  &O_AT = TESTBIT &LEDSTATUT ,2
  &O_N1 = TESTBIT &LEDSTATUT ,3
  &O_SPEED = TESTBIT &LEDSTATUT ,4
  &O_VNAV = TESTBIT &LEDSTATUT ,5
  &TEST_BIT_VNAV = &O_VNAV    
  &O_LVLCHG = TESTBIT &LEDSTATUT ,6
  &O_HDGSEL = TESTBIT &LEDSTATUT ,7
  &O_LNAV = TESTBIT &LEDSTATUT ,8
  &O_VORLOC = TESTBIT &LEDSTATUT ,9
  &O_APP = TESTBIT &LEDSTATUT ,10
  &O_ALTHLD = TESTBIT &LEDSTATUT ,11
  &O_VS = TESTBIT &LEDSTATUT ,12
  &O_CMDA = TESTBIT &LEDSTATUT ,13
  &VSI_State = TESTBIT &LEDSTATUT ,14
  &DECIMAL = TESTBIT &LEDSTATUT ,15     // TESTE la Led point decimal pour MACH
}

Var 0005, name LED_STATUS_B, Link FSUIPC_INOUT, Offset $7378, Length 2     // Lis la led CMD B du MCP AS
{
  &O_CMDB = TESTBIT &LED_STATUS_B ,0
}

Var 0006, name I_FD1, Link IOCARD_SW, Input 16, Type I     // FD_GAUCHE
{
  &Command = 0    
  &Command = DELAY 10 ,5
}

Var 0007, name I_AT, Link IOCARD_SW, Input 33, Type I
{
  &Command = 0    
  &Command = DELAY 11 ,5
}

Var 0008, name I_N1, Link IOCARD_SW, Input 32, Type P
{
  &Command = 0    
  &Command = DELAY 12 ,5
}

Var 0009, name I_VORLOC, Link IOCARD_SW, Input 25, Type P
{
  &Command = 0    
  &Command = DELAY 18 ,5
}

Var 0010, name I_APP, Link IOCARD_SW, Input 24, Type P
{
  &Command = 0    
  &Command = DELAY 19 ,5
}

Var 0011, name I_CMDA, Link IOCARD_SW, Input 21, Type P
{
  &Command = 0    
  &Command = DELAY 22 ,5
}

Var 0012, name I_CMDB, Link IOCARD_SW, Input 19, Type P
{
  &Command = 0    
  &Command = DELAY 26 ,5
}

Var 0013, name O_CMDA, Link IOCARD_OUT, Output 33

Var 0014, name O_CMDB, Link IOCARD_OUT, Output 35

Var 0015, name O_AT, Link IOCARD_OUT, Output 22     // Led AT ARM

Var 0016, name O_N1, Link IOCARD_OUT, Output 21

Var 0017, name O_VORLOC, Link IOCARD_OUT, Output 28

Var 0018, name O_APP, Link IOCARD_OUT, Output 27

Var 0019, name I_HDGSEL, Link IOCARD_SW, Input 28, Type P
{
  &Command = 0    
  &Command = DELAY 16 ,5
}

Var 0020, name O_HDGSEL, Link IOCARD_OUT, Output 26     // LED HDGSEL ON_OFF

Var 0021, name HDG, Value 0

Var 0022, name I_LNAV, Link IOCARD_SW, Input 27, Type P
{
  &Command = 0    
  &Command = DELAY 17 ,5
}

Var 0023, name O_LNAV, Link IOCARD_OUT, Output 29     // LED ON_OFF

Var 0024, name MM_TEST_VNAV, Value 0     // Memoir bit VNAV

Var 0025, name TEST_BIT_VNAV     // Test le bit VNAV

Var 0026, name O_VNAV, Link IOCARD_OUT, Output 25
{
  IF &TEST_BIT_VNAV = 0
  {
    &D_IAS = -999999    
    &O_SPEED = 0    
  }
  ELSE
  {
    &D_IAS = &T_IAS    
  }
}

Var 0027, name I_VNAV, Link IOCARD_SW, Input 30, Type P
{
  &Command = 0    
  &Command = DELAY 14 ,5
}

Var 0028, name DECIMAL, Link IOCARD_OUT, Output 20     // Led point decimal pour MACH

Var 0029, name E_ALTITUDE, Link IOCARD_ENCODER, Input 2, Aceleration 2, Type 2
{
  L0 = &E_ALTITUDE * -1
  &ALTITUDE = LIMIT 0 ,500 ,L0
}

Var 0030, name ALTITUDE, Value 0
{
  &Command = 0    
  &Command = 1    
  &Valeur_OPTION = &ALTITUDE    
  &D_ALTI = &Valeur_OPTION * 100
}

Var 0031, name D_ALTI, Link IOCARD_DISPLAY, Digit 9, Numbers 5

Var 0032, name I_ALTHLD, Link IOCARD_SW, Input 23, Type P
{
  &Command = 0    
  &Command = DELAY 20 ,5
}

Var 0033, name O_ALTHLD, Link IOCARD_OUT, Output 30

Var 0034, name E_VSI, Link IOCARD_ENCODER, Input 11, Aceleration 2, Type 2
{
  L0 = &E_VSI * -1
  &VSI = LIMIT -79 ,60 ,L0
}

Var 0035, name D_VSI, Link IOCARD_DISPLAY, Digit 14, Numbers 5

Var 0036, name O_VS, Link IOCARD_OUT, Output 31
{
  &VSI_Display = &O_VS    
}

Var 0037, name I_VS, Link IOCARD_SW, Input 22, Type P
{
  &Command = 0    
  &Command = DELAY 21 ,5
}

Var 0038, name VSI
{
  IF &VSI_State = 0
  {
    &Command = 0    
    &Command = 2    
    &Valeur_OPTION = 0    
    &VSI = 0    
  }
  ELSE
  {
    &Command = 0    
    &Command = 2    
    &Valeur_OPTION = &VSI    
    &D_VSI = &VSI * 100
  }
}

Var 0039, name VSI_State, Value 0

Var 0040, name VSI_Display
{
  IF &VSI_Display = 0
  {
    &VSI = 0    
    &D_VSI = -999999    
  }
  ELSE
  {
    &D_VSI = &VSI * 100
  }
}

Var 0041, name O_LVLCHG, Link IOCARD_OUT, Output 24
{
  IF &O_LVLCHG = 1
  {
    &VSI_Display = 0    
  }
}

Var 0042, name I_LVLCHG, Link IOCARD_SW, Input 29, Type P
{
  &Command = 0    
  &Command = DELAY 15 ,5
}

Var 0043, name APD_HDG, Link FSUIPC_INOUT, Offset $07CC, Length 2     // APD_HDG

Var 0044, name D_HDG, Link IOCARD_DISPLAY, Digit 6, Numbers 3
{
  L1 = &D_HDG * 182.04444
  L0 = L1 + 1
  &APD_HDG = L0    
}

Var 0045, name E_HDG, Link IOCARD_ENCODER, Input 6, Aceleration 4, Type 2
{
  L0 = &E_HDG * -1
  &D_HDG = ROTATE 0 ,359 ,L0
}

Var 0046, name AP_IAS, Link FSUIPC_INOUT, Offset $07DC, Length 4     // AP_IAS
{
  IF &AP_IAS = 1
  {
    &SPEED = 1    
    &O_SPEED = 1    
    &F_IAS = &T_IAS    
  }
  ELSE
  {
    IF &AP_MACH = 0
    {
      &O_SPEED = 0    
    }
  }
}

Var 0047, name APD_IAS, Link FSUIPC_INOUT, Offset $07E2, Length 2     // D_IAS

Var 0048, name AP_MACH, Link FSUIPC_INOUT, Offset $07E4, Length 4     // AP_MACH
{
  IF &AP_MACH = 1
  {
    &SPEED = 2    
    &O_SPEED = 1    
  }
  ELSE
  {
    IF &AP_IAS = 0
    {
      &O_SPEED = 0    
    }
  }
}

Var 0049, name APD_MACH, Link FSUIPC_INOUT, Offset $07E8, Length 4     // APD_MACH

Var 0050, name FS_IAS, Link FSUIPC_IN, Offset $02BC, Length 4     // IAS FS

Var 0051, name FS_MACH, Link FSUIPC_IN, Offset $11C6, Length 2     // IAS FS

Var 0052, name SPEED
{
  IF &SPEED <> 2
  {
    &O_DECIMAL = 0    
    &F_IAS = &T_IAS    
  }
  ELSE
  {
    &O_DECIMAL = 1    
    &F_IAS = &T_MACH    
  }
}

Var 0053, name T_IAS

Var 0054, name T_MACH

Var 0055, name F_IAS
{
  IF &SPEED <> 2
  {
    &O_DECIMAL = 0    
    &D_IAS = &F_IAS    
    &APD_IAS = DELAY &F_IAS ,10
  }
  ELSE
  {
    &O_DECIMAL = 1    
    &D_IAS = &F_IAS    
    L0 = &F_IAS * 655.36
    &APD_MACH = DELAY L0 ,10
  }
}

Var 0056, name D_IAS, Link IOCARD_DISPLAY, Digit 3, Numbers 3

Var 0057, name O_DECIMAL, Link IOCARD_OUT, Output 20

Var 0058, name O_SPEED, Link IOCARD_OUT, Output 23

Var 0059, name E_IAS, Link IOCARD_ENCODER, Input 0, Aceleration 4, Type 2
{
  IF &SPEED <> 2
  {
    L0 = &E_IAS * -1
    &T_IAS = LIMIT 0 ,360 ,L0
    &F_IAS = &T_IAS    
  }
  ELSE
  {
    L0 = &E_IAS * -1
    &T_MACH = LIMIT 0 ,99 ,L0
    &F_IAS = &T_MACH    
  }
}

Var 0060, name I_CO, Link IOCARD_SW, Input 13, Type P
{
  &Command = 0    
  &Command = DELAY 23 ,5
  IF &O_SPEED = 1
  {
    IF &SPEED <> 0
    {
      IF &SPEED = 1
      {
        L0 = &FS_MACH / 204.8
        &T_MACH = L0    
        &AP_MACH = 1    
      }
      ELSE
      {
        L0 = &FS_IAS / 128
        &T_IAS = L0    
        &AP_IAS = 1    
      }
    }
  }
}

Var 0061, name I_SPEED, Link IOCARD_SW, Input 31, Type P
{
  &Command = 0    
  &Command = DELAY 13 ,5
}

Var 0062, name APD_COURSE1, Link FSUIPC_INOUT, Offset $0C4E, Length 2     // APD_COURSE1

Var 0063, name E_COURSE1, Link IOCARD_ENCODER, Input 4, Aceleration 4, Type 2
{
  L0 = &E_COURSE1 * -1
  &D_COURSE1 = ROTATE 0 ,359 ,L0
}

Var 0064, name D_COURSE1, Link IOCARD_DISPLAY, Digit 0, Numbers 3
{
  &APD_COURSE1 = &D_COURSE1    
}

Var 0065, name APD_COURSE2, Link FSUIPC_INOUT, Offset $0C5E, Length 2     // APD_COURSE2

Var 0066, name E_COURSE2, Link IOCARD_ENCODER, Input 9, Aceleration 4, Type 2
{
  L0 = &E_COURSE2 * -1
  &D_COURSE2 = ROTATE 0 ,359 ,L0
}

Var 0067, name D_COURSE2, Link IOCARD_DISPLAY, Digit 19, Numbers 3
{
  &APD_COURSE2 = &D_COURSE2    
}

Var 0068, name I_DISENGAGE, Link IOCARD_SW, Input 15
